package br.fiap.nac.Classes;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

public class Pedido implements Serializable {

	private static final long serialVersionUID = 1L;

	private Long id;
	private Date dataEmissao;
	private Date dataProcessamento;
	private BigDecimal totalPedido;
	private List<ItemPedido> ListaItemPedido;
	private Cliente cliente;

	public Long getId() {
		return id;
	}
	public void setId(Long id) {
		this.id = id;
	}
	public Date getDataEmissao() {
		return dataEmissao;
	}
	public void setDataEmissao(Date dataEmissao) {
		this.dataEmissao = dataEmissao;
	}
	public Date getDataProcessamento() {
		return dataProcessamento;
	}
	public void setDataProcessamento(Date dataProcessamento) {
		this.dataProcessamento = dataProcessamento;
	}
	public BigDecimal getTotalPedido() {
		return totalPedido;
	}
	public void setTotalPedido(BigDecimal totalPedido) {
		this.totalPedido = totalPedido;
	}
	public List<ItemPedido> getListaItemPedido() {
		return ListaItemPedido;
	}
	public void setListaItemPedido(List<ItemPedido> listaItemPedido) {
		ListaItemPedido = listaItemPedido;
	}
	public Cliente getCliente() {
		return cliente;
	}
	public void setCliente(Cliente cliente) {
		this.cliente = cliente;
	}
	public void addItemPedido(ItemPedido item) {
		this.ListaItemPedido.add(item);
	}

	public String toString() {
		String ret = "";
		ret = "Pedido: " + this.id + " \t Cliente: [" + this.cliente.getId() + "] " + this.cliente.getNome() + " \t Emissao: " + this.dataEmissao + " \t Processamento: ";
		
		ret += this.dataProcessamento == null ? "" : this.dataProcessamento;
		
		for(ItemPedido item: this.ListaItemPedido) {    
			ret += "\n \t [" + item.getProduto().getId() + "] \t " + item.getProduto().getDescricao()+"                    ".substring(0, 20) + " \t ";
			ret += item.getPrecoUnitario() + " \t " + item.getQuantidade() + " \t -" + item.getDesconto() + "% \t " + item.getTotalDoItem();
		}
		
		if(this.ListaItemPedido.size() == 0)
			ret += "\n- - PEDIDO SEM PRODUTOS CADASTRADOS - - ";
		
		return ret;
	}
	
	public String toString2() {
		String ret = "";
		ret = "Pedido: " + this.id + " \t Cliente: [" + this.cliente.getId() + "] " + this.cliente.getNome() + " \t Emissao: " + this.dataEmissao + " \t Processamento: ";
		
		ret += this.dataProcessamento == null ? "" : this.dataProcessamento;
		
		ret += String.valueOf(this.ListaItemPedido.size());
		
		if(this.ListaItemPedido.size() == 0)
			ret += "\n- - PEDIDO SEM PRODUTOS CADASTRADOS - - ";
		
		return ret;
	}
	

	
}
